package com.example.rpc_core.model;


import cn.hutool.core.util.StrUtil;
import com.example.rpc_core.constance.RpcConstant;
import lombok.Data;

import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;

@Data
public class ServiceInfo {
    /**
     * 服务名字
     */
    private String serviceName;
    /**
     * 服务版本
     */
    private String serviceVersion= "1.0";
    /**
     * 服务域名
     */
    private String serviceHost="localhost";
    /**
     * 服务端口
     */
    private Integer servicePort=8081;
    /**
     * 服务分组
     */
    private String serviceGroup="default";

    /**
     * 获取服务键名
     * @return
     */
    public String getServiceKey(){
        return String.format("%s:%s", serviceName,serviceVersion);
    }

    /**
     * 获取服务节点键名
     * @return
     */
    public String getServiceNodeKey(){
        return String.format("%s:%s:%s:%s", serviceName,serviceVersion,serviceHost,servicePort);
    }

    /**
     * 获取服务地址
     * @return
     */
    public String getServiceAddress() {
        if(!StrUtil.contains(serviceHost,"http")){
        return String.format("http://%s:%s", serviceHost,servicePort);
    }
        return String.format("%s:%s", serviceHost,servicePort);
    }

}


